﻿using System;
using HiLand.Framework.FoundationLayer;
using HiLand.Framework.FoundationLayer.Attributes;
using HiLand.Utility.Enums;
using HiLand.Utility.Data;
using HiLand.Utility.Finance;

namespace GBFinance.Entity
{
    public class LoanWorkEntity : BaseModel<LoanWorkEntity>
    {
        public override string[] BusinessKeyNames
        {
            get { return new string[] { "WorkGuid" }; }
        }

        private int workID;
        public int WorkID
        {
            get { return workID; }
            set { workID = value; }
        }

        private Guid workGuid = Guid.Empty;
         [DBFieldAttribute(IsBusinessPrimaryKey = true)]
        public Guid WorkGuid
        {
            get { return workGuid; }
            set { workGuid = value; }
        }

        private Guid userGuid = Guid.Empty;
        public Guid UserGuid
        {
            get { return userGuid; }
            set { userGuid = value; }
        }

        private string employerName = String.Empty;
        public string EmployerName
        {
            get { return employerName; }
            set { employerName = value; }
        }

        private string employerAddress = String.Empty;
        public string EmployerAddress
        {
            get { return employerAddress; }
            set { employerAddress = value; }
        }

        private string employerTelephone = String.Empty;
        public string EmployerTelephone
        {
            get { return employerTelephone; }
            set { employerTelephone = value; }
        }

        private JobStatuses employmentStatus;
        public JobStatuses EmploymentStatus
        {
            get { return employmentStatus; }
            set { employmentStatus = value; }
        }

        private string jobTitle = String.Empty;
        public string JobTitle
        {
            get { return jobTitle; }
            set { jobTitle = value; }
        }

        private int timeEmployedYears;
        public int TimeEmployedYears
        {
            get { return timeEmployedYears; }
            set { timeEmployedYears = value; }
        }

        private int timeEmployedMonths;
        public int TimeEmployedMonths
        {
            get { return timeEmployedMonths; }
            set { timeEmployedMonths = value; }
        }

        private decimal incomeafterTaxes;
        public decimal IncomeafterTaxes
        {
            get { return incomeafterTaxes; }
            set { incomeafterTaxes = value; }
        }

        private PaymentTermTypes incomaCircle;
        public PaymentTermTypes IncomeCircle
        {
            get { return incomaCircle; }
            set { incomaCircle = value; }
        }

        private DateTime nextIncomeDay= DateTimeHelper.Min;
        public DateTime NextIncomeDay
        {
            get { return nextIncomeDay; }
            set { nextIncomeDay = value; }
        }

        private decimal mainPayment;
        public decimal MainPayment
        {
            get { return mainPayment; }
            set { mainPayment = value; }
        }

        private decimal regularOtherPayment;
        public decimal RegularOtherPayment
        {
            get { return regularOtherPayment; }
            set { regularOtherPayment = value; }
        }

        private PaymentTermTypes mainPaymentCircle;
        public PaymentTermTypes MainPaymentCircle
        {
            get { return mainPaymentCircle; }
            set { mainPaymentCircle = value; }
        }

        private PaymentTermTypes regularOtherPaymentCircle;
        public PaymentTermTypes RegularOtherPaymentCircle
        {
            get { return regularOtherPaymentCircle; }
            set { regularOtherPaymentCircle = value; }
        }
    }
}